# 集合操作
print("----------------定义--------------")
# 空集合的表示方法只能是set()，因为set()是一个函数，而{}是一个字典
s = set()

# 将字符出转为set
s1 = set("safsadfasdfsd6")
s2 = set("as3efs90fdsafl")

print("----------------运算--------------")
# {'a', 's', 'd', '6', 'f'} 集合是不可以重复的所以重复的值将被覆盖
print(s1)
# {'l', 'd', 'e', 'f', 's', '3', '9', 'a', '0'}
print(s2)
# 注意这里的差集是s1中不在s2中的元素
print(s1.difference(s2))

# 除此之外，我们也可以通过逻辑运算来进行集合操作
print(s1 & s2)
print(s1 | s2)
print(s1 - s2)
# a 和 b 中不同时存在的元素 {'3', '0', 'l', '9', 'e', '6'}
print("------")
print(s1 ^ s2)


print(s1.difference_update(s2))
# s1被更新为差集 {'6'}，s2没有被更新
print(s1)
print(s2)

print("----------------增删改--------------")
myset = set()
# 添加
myset.add("a")
myset.add("b")
myset.add("c")

print(myset)
# 删除
print(myset.remove("a"))
myset.discard("d")  # 如果元素不存在，不会抛出错误
# 修改
my_set = {1, 2, 3}
my_set.update([4, 5])  # 添加列表中的元素到集合中
print(my_set)

print("----------------类型转换--------------")
# 列表转集合
my_set = set([1, 2, 3, 4, 5])
print(my_set)
